// copyright stuff

// htmlsoup is nodes for building an html tree.
// the nodes have String() and Byte() methods which return a representation of the node.
//
//
// example:
//  dirtytree := htmlsoup.NewDocumentNode()
//  // parse first tag evaluating that it is a doctype tag
//  // add a doctype node to the tree using the parsed data
//  currentParent := htmlsoup.AddNewDocTypeNode(dirtyTree, valuebytes)
//  // parse next tag evaluating that it is a regular html tag ( ex: <html ...> )
//  // add a tag node to the tree using the parsed data
//  currentParent = htmlsoup.OpenNewTagNode(currentParent, prefixbytes, namebytes, attributesbytes, isClosed)
//  // parse next tag evaluating that it is a regular html tag ( ex: <body ...> )
//  // add a tag node to the tree using the parsed data
//  currentParent = htmlsoup.OpenNewTagNode(currentParent, prefixbytes, namebytes, attributesbytes, isClosed)
//  // parse next tag evaluating that it is not a tag at all but text
//  // add the text to the tree using the parsed data
//  currentParent = htmlsoup.AddNewTextNode(currentParent, valuebytes)
//  ... (more parsing and adding and closing)
//  // parse next tag evaluating that it is a regualar html close tag ( ex: </body> )
//  // close the previous ( in this ex: <body> ) tag node in the tree using the parsed data
//  currentParent = htmlsoup.CloseTagNode(currentParent, prefixbytes, namebytes)
//  // parse next tag evaluating that it is a regular html close tag ( ex: </html> )
//  // close the previous ( in this ex: <html> ) tag node in the tree using the parsed data
//  currentParent = htmlsoup.CloseTagNode(currentParent, prefixbytes, namebytes)
//  // finally get the cleaned up version.
//  cleanBytes = dirtytree.Bytes()
package htmlsoup
